﻿using Common.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Wallpaper.Models.DTOs.Base;
using Wallpaper.Models.DTOs.Requests.Category;
using Wallpaper.Models.DTOs.Responses.Category;
using Wallpaper.Models.Entities;
using Wallpaper.Models.Options;

namespace Wallpaper.Services.IService
{
    public interface ICategoryService
    {


        /// <summary>
        /// 新增
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<bool> CreateAsync(CategoryRequest request);


        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<bool> DeleteById(string id);

        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="Id"></param>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<bool> UpdateAsync(string Id, CategoryRequest request);

        /// <summary>
        /// 分页查询
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<PagedResult<CategoryResponse>> PageAsync(QueryRequest request);

        /// <summary>
        /// 获取下列
        /// </summary>
        /// <returns></returns>
        Task<List<OptionsResponse>> OptionsAsync();

        /// <summary>
        /// 获取分类封面
        /// </summary>
        /// <returns></returns>
        Task<List<CoverResponse>> getCoverAsync();
    }
}
